#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random

class Table(object):
    '''牌桌类，处理游戏牌数据、分数等信息'''
    
    def __init__(self):
        #牌盒
        self.cardBox=[]
        #玩家出牌队列，依次存储各玩家出牌堆的表层
        self.outList=[]
        #玩家入牌列表，依次存储各玩家收的牌
        self.inList=[]
        #记分盒，依次存储各玩家的分值
        self.scoreBox=[]
        #牌组数（多少副牌）
        self.cardPack=1
        #牌堆，待发的所有牌
        self.pileCards=range(54)
        #牌基数，用于标示最小牌
        self.cardBase=0
    
    def reset(self):
        '''重置各数据'''
        #拷贝清空，防止外部引用丢失
        del self.cardBox[:]
        del self.outList[:]
        del self.inList[:]
        del self.scoreBox[:]
    
    def setPileCards(self, cards):
        '''设置牌堆'''
        self.pileCards=cards
    
    def fillCardBox(self):
        '''装牌'''
        #采用拷贝传值，防止外部引用丢失
        self.cardBox[:]=self.pileCards
    
    def fillScoreBox(self, scorebox):
        '''装分值数据'''
        #采用拷贝传值，防止外部引用丢失
        self.scoreBox[:]=scorebox
    
    def shuffle(self):
        '''洗牌'''
        cardbox=self.cardBox
        length = len(cardbox)
        for i in range(0,length):
            randomi = int(random.random()*length)
            cardbox[i],cardbox[randomi] = cardbox[randomi],cardbox[i]

if __name__ == '__main__':
    table=Table()
    table.fillCardBox(range(54))
    table.shuffle()
    print table.cardBox

